Problem Note 44190: Unicode server performance is degraded when character literals in a WHERE clause are not passed to a database correctly
A SAS Unicode server accessing a third-party database using the SAS/ACCESS® software might convert character literals in WHERE clauses to hexadecimal strings before passing the query to the database. This issue occurs when the characters or signs used in the literal in the WHERE predicate are not standard English (7-bit ASCII). The resulting poor performance occurs because the query is rejected by the database and, subsequently, the data is read into SAS and processed there.
Here is an example:
PROC SQL;
SELECT count(*)
FROM dblib.dbtable
WHERE dbtable.dbcolumn = 'æøå'; /* Unicode literal */
QUIT;
SELECT COUNT(*) from DBTABLE where "DBCOLUMN" = 'C3A6C3B8C3A5'x
A correct result set is produced, but the query might perform poorly.
Click the Hot Fix tab in this note to access the hot fix for this issue.
Operating System and Release Information
SAS System | Base SAS | Microsoft® Windows® for 64-Bit Itanium-based Systems | 9.2 TS2M3 | 9.3 TS1M1 |
Microsoft Windows Server 2003 Datacenter 64-bit Edition | 9.2 TS2M3 | 9.3 TS1M1 |
Microsoft Windows Server 2003 Enterprise 64-bit Edition | 9.2 TS2M3 | 9.3 TS1M1 |
Microsoft Windows XP 64-bit Edition | 9.2 TS2M3 | 9.3 TS1M1 |
Microsoft® Windows® for x64 | 9.2 TS2M3 | 9.3 TS1M1 |
Microsoft Windows Server 2003 Datacenter Edition | 9.2 TS2M3 | 9.3 TS1M1 |
Microsoft Windows Server 2003 Enterprise Edition | 9.2 TS2M3 | 9.3 TS1M1 |
Microsoft Windows Server 2003 Standard Edition | 9.2 TS2M3 | 9.3 TS1M1 |
Microsoft Windows Server 2003 for x64 | 9.2 TS2M3 | 9.3 TS1M1 |
Microsoft Windows Server 2008 | 9.2 TS2M3 | 9.3 TS1M1 |
Microsoft Windows Server 2008 for x64 | 9.2 TS2M3 | 9.3 TS1M1 |
Microsoft Windows XP Professional | 9.2 TS2M3 | 9.3 TS1M1 |
Windows 7 Enterprise 32 bit | 9.2 TS2M3 | 9.3 TS1M1 |
Windows 7 Enterprise x64 | 9.2 TS2M3 | 9.3 TS1M1 |
Windows 7 Home Premium 32 bit | 9.2 TS2M3 | 9.3 TS1M1 |
Windows 7 Home Premium x64 | 9.2 TS2M3 | 9.3 TS1M1 |
Windows 7 Professional 32 bit | 9.2 TS2M3 | 9.3 TS1M1 |
Windows 7 Professional x64 | 9.2 TS2M3 | 9.3 TS1M1 |
Windows 7 Ultimate 32 bit | 9.2 TS2M3 | 9.3 TS1M1 |
Windows 7 Ultimate x64 | 9.2 TS2M3 | 9.3 TS1M1 |
Windows Vista | 9.2 TS2M3 | 9.3 TS1M1 |
Windows Vista for x64 | 9.2 TS2M3 | 9.3 TS1M1 |
64-bit Enabled AIX | 9.2 TS2M3 | 9.3 TS1M1 |
64-bit Enabled HP-UX | 9.2 TS2M3 | 9.3 TS1M1 |
64-bit Enabled Solaris | 9.2 TS2M3 | 9.3 TS1M1 |
HP-UX IPF | 9.2 TS2M3 | 9.3 TS1M1 |
Linux | 9.2 TS2M3 | 9.3 TS1M1 |
Linux for x64 | 9.2 TS2M3 | 9.3 TS1M1 |
OpenVMS on HP Integrity | 9.2 TS2M3 | 9.3 TS1M1 |
Solaris for x64 | 9.2 TS2M3 | 9.3 TS1M1 |
*
For software releases that are not yet generally available, the Fixed
Release is the software release in which the problem is planned to be
fixed.
A SAS Unicode server accessing a third-party database with SAS/ACCESS® software literals in WHERE clauses might be converted to HEX strings. Poor performance might result because the data is read into SAS instead, where the subsetting is processed.
Type: | Problem Note |
Priority: | medium |
Date Modified: | 2012-08-15 13:26:15 |
Date Created: | 2011-09-02 05:20:47 |